package com.ellecity06.common.ktx

import android.text.TextUtils
import java.math.BigDecimal

/**
 * @author ellecity06
 * @time 2024/10/23 19:08
 * @des
 */
/**
 * 添加人民币符号前缀
 */
fun String.prefixUnit(): String {
    return String.format("¥ %s", this)
}

fun Double.prefixUnit(): String {
    return String.format("¥ %s", this)
}


/**
 * 将价钱格式转换 例：6.00 转 6    6.01 转 6.01
 *

 * @return
 */
fun Double?.toAmount(): String {
    if (this==null) return "0.00"
    return BigDecimal(this).setScale(
        2,
        BigDecimal.ROUND_HALF_UP
    ).toString().toAmount()
}

/**
 * 将价钱格式转换 例：6.00 转 6    6.01 转 6.01
 *
 * @return
 */
fun String.toAmount(): String {
    return if (TextUtils.isEmpty(this)) {
        "0"
    } else subZeroAndDot(this)
}


/**
 * 去除double 多余的0
 */
private fun subZeroAndDot(s: String, retain: Int = 0): String {
    var s = s
    if (TextUtils.isEmpty(s) || TextUtils.isEmpty(s.replace(" ".toRegex(), ""))) {
        return "0"
    }
    if (s.indexOf(".") > 0) {
        s = s.replace("0+?$".toRegex(), "") //去掉多余的0
        s = s.replace("[.]$".toRegex(), "") //如最后一位是.则去掉
    }
    return if (retain > 0) {
        String.format(StringBuilder("%.").append(retain).append("f").toString(), s)
    } else s
}